@MastersThesis{Almeida:2017:ChChWe,
author = "Almeida, Diego Benincasa Fernandes Cavalcanti de",
title = "Characterization of changes in web services contracts based on
repository mining",
school = "Instituto Nacional de Pesquisas Espaciais (INPE)",
year = "2017",
address = "S{\~a}o Jos{\'e} dos Campos",
month = "2017-03-28",
keywords = "software repository mining, web services, service contract,
software adaptation, web service planning, minera{\c{c}}{\~a}o
de reposit{\'o}rio de software, servi{\c{c}}o web, contratos de
servi{\c{c}}o web, adapta{\c{c}}{\~a}o de software,
planejamento de servi{\c{c}}o web.",
abstract = "During a software system life cycle, project modifications occur
for different reasons, either for natural evolution or
requirements readjustment. Regarding web services, communication
contracts modifications are equally common, which induce the need
for adaptation in every system node, from the service consumers to
the providers. More significant those changes are, greater the
efforts required for this adjustment. To help reducing the
contracts changing impact over software source code, easyto-adapt
systems can be designed in order to minimize the application
remodeling effort. However, to make this approach possible, it is
necessary to understand how those contract changes occur,
analyzing the most common modification types and how often they
happen. In this sense, this dissertation undertakes an evaluation
of the change history of different open-source projects whose web
service contracts are defined using documents in Web Service
Description Language (WSDL) format. Using software repository
mining with MetricMiner tool, the behavior of four modification
types (addition, removal, relocation and refactoring) that occur
to four XML element types (xs:element, xs:attribute,
xs:complexType and xs:import) of contracts schemas was analyzed,
in a universe of 139 projects whose source-codes are hosted at
GitHub. As a result of this study, conclusions were that
modifications of types addition and removal were more frequent
than the others and take place in about 20\% of verified
revisions, and that a great amount of commits the act of recording
file changings to the repository and creating a new file revision
are related to a small number of changings in contracts. Such
results indicate that modifications tend to be spread in many
revisions and that a significant amount of changes are related to
inclusion or exclusion of exchanged information in contracts.
Conclusions obtained serve as input to the planning of new web
services and to the maintenance of existing ones, giving important
knowledge about services evolution which helps reducing or even
avoiding excessive adaptation effort of both clients and provides
with the natural evolution of contracts. RESUMO: Durante o ciclo
de vida de um sistema computacional, modifica{\c{c}}{\~o}es no
projeto ocorrem por diferentes motivos, quer sejam por necessidade
de evolu{\c{c}}{\~a}o ou para readequa{\c{c}}{\~a}o aos
requisitos. No que diz respeito a servi{\c{c}}os web,
modifica{\c{c}}{\~o}es nos contratos de comunica{\c{c}}{\~a}o
s{\~a}o igualmente comuns, o que causa a necessidade de
adapta{\c{c}}{\~a}o de todos os agentes do sistema, desde os
consumidores at{\'e} os provedores dos servi{\c{c}}os. Quanto
mais significativas forem tais mudan{\c{c}}as, maior ser{\'a} o
esfor{\c{c}}o necess{\'a}rio para o ajuste. Para reduzir o
impacto das altera{\c{c}}{\~o}es dos contratos sobre o
c{\'o}digo-fonte das aplica{\c{c}}{\~o}es, sistemas mais
adapt{\'a}veis podem ser desenvolvidos de modo a minimizar o
esfor{\c{c}}o de remodelagem da aplica{\c{c}}{\~a}o {\`a} nova
vers{\~a}o do contrato. Contudo, para que tal abordagem seja
poss{\'{\i}}vel, {\'e} necess{\'a}rio entender como tais
mudan{\c{c}}as em contratos ocorrem, analisando os tipos mais
comuns de altera{\c{c}}{\~o}es e a frequ{\^e}ncia com que
acontecem. Neste sentido, esta disserta{\c{c}}{\~a}o realiza uma
avalia{\c{c}}{\~a}o do hist{\'o}rico de mudan{\c{c}}as de
diferentes projetos cujos contratos de servi{\c{c}}os web
s{\~a}o definidos por meio de documentos em formato Web Service
Description Language (WSDL). Utilizando minera{\c{c}}{\~a}o de
reposit{\'o}rio com a ferramenta MetricMiner, foi analisado o
comportamento de quatro tipos de modifica{\c{c}}{\~o}es
(adi{\c{c}}{\~a}o, remo{\c{c}}{\~a}o, realoca{\c{c}}{\~a}o e
refatora{\c{c}}{\~a}o) que ocorrem em quatro tipos de elementos
XML (xs:element, xs:attribute, xs:complexType e xs:import) dos
esquemas dos contratos, num universo de 139 projetos cujos
c{\'o}digosfonte est{\~a}o hospedados no GitHub. Como resultado
deste estudo, concluiu-se que modifica{\c{c}}{\~o}es dos tipos
adi{\c{c}}{\~a}o e remo{\c{c}}{\~a}o s{\~a}o bem mais
frequentes que as outras e que ocorrem em cerca de 20% das
revis{\~o}es verificadas, al{\'e}m de que grande parte dos
commits ato de gravar no reposit{\'o}rio altera{\c{c}}{\~o}es
em arquivos, criando novas revis{\~o}es dos mesmos est{\~a}o
relacionados a poucas altera{\c{c}}{\~o}es dos contratos. Os
resultados indicam que as modifica{\c{c}}{\~o}es tendem a se
espalhar por v{\'a}rias revis{\~o}es e que parcela significante
de mudan{\c{c}}as est{\'a} relacionada com inclus{\~a}o ou
exclus{\~a}o de informa{\c{c}}{\~o}es trafegadas em contratos.
As conclus{\~o}es obtidas servem de insumo ao planejamento de
novos servi{\c{c}}os web e de manuten{\c{c}}{\~a}o dos j{\'a}
existentes, fornecendo conhecimento importante sobre a
evolu{\c{c}}{\~a}o dos servi{\c{c}}os que auxilia a reduzir ou
mesmo evitar esfor{\c{c}}o demasiado de adapta{\c{c}}{\~a}o
tanto de clientes quando de provedores quando da natural
evolu{\c{c}}{\~a}o dos contratos.",
committee = "Vijaykumar, Nandamudi Lankalapalli (presidente) and Guerra,
Eduardo Martins (orientador) and Stephany, Stephan and Carvalho,
Solon Ven{\^a}ncio de and Forster, Carlos Henrique Quartucci",
englishtitle = "Caracteriza{\c{c}}{\~a}o de mudan{\c{c}}as em contratos de
servi{\c{c}}os web baseada em minera{\c{c}}{\~a}o de
reposit{\'o}rio",
language = "en",
pages = "108",
ibi = "8JMKD3MGP3W34P/3NHQ3T8",
url = "http://urlib.net/ibi/8JMKD3MGP3W34P/3NHQ3T8",
targetfile = "publicacao.pdf",
urlaccessdate = "27 abr. 2024"
}